Original Note

Section 3 Software Development as a Process - Read

Section 3 Software Development as a Process(整理版)

原始笔记: Introduce.md 原始教程: Section 3: Software Development as a Process created: 2026-07-26 14:40 整理说明: 本版本保持原笔记的主题范围,只翻译、整理软件开发过程的六个阶段,不扩展原笔记未记录的教程内容。

内容简要概括

软件开发不是只写代码,而是从明确需求开始,经过设计、实现、测试和部署,再进入持续维护的完整过程。每个阶段都为后续阶段提供依据;越早澄清目标和发现问题,后续开发就越容易保持方向和质量。

Software Development Process、需求获取、软件设计、实现、测试、部署、维护、软件生命周期

目录


1. 软件开发过程

典型的软件开发过程可以划分为六个阶段:

Requirements Gathering
→ Design
→ Implementation
→ Testing
→ Deployment
→ Maintenance

这些阶段把“要解决什么问题”“准备怎样解决”“如何确认解决正确”以及“软件投入使用后如何继续演化”连接为一条完整路径。

2. 六个阶段

2.1 Requirements Gathering

需求获取是在项目开始前识别并记录软件的确切需求。它用于维持清晰的开发方向,并定义软件最终必须完成的目标。

这一阶段主要回答:

  • 软件为谁服务;
  • 需要解决什么问题;
  • 应当具备哪些能力;
  • 存在哪些限制和质量要求。

2.2 Design

设计阶段把需求转化为软件的整体方案,包括:

  • 软件包含哪些基本组件;
  • 组件各自承担什么职责;
  • 组件之间如何协作;
  • 使用哪些工具和技术实现需求。

设计不是追求一次得到完美结构,而是为当前需求建立足够清晰、便于实现和修改的方案。

2.3 Implementation

实现阶段按照设计编写软件,把需求和设计转换成能够运行的代码。

实现不能脱离前两个阶段:代码是否“完成”,应根据它是否落实既定设计并满足需求来判断。

2.4 Testing

测试用于发现并修复缺陷,同时验证软件是否可靠地满足已定义的需求。

测试需要同时关注:

  • 软件是否产生正确结果;
  • 软件是否按预期处理输入和异常情况;
  • 后续修改是否破坏已有行为;
  • 已实现功能是否确实对应原始需求。

2.5 Deployment

部署是把软件发布到预定环境,使其能够用于原本的目的。部署形式可以是安装到目标机器、发布给用户、部署为服务,或以其他方式交付可用的软件。

2.6 Maintenance

维护发生在软件投入使用之后,目标是让软件持续适合其用途,通常包括:

  • 修复新发现的问题;
  • 适配运行环境变化;
  • 根据变化后的需求更新功能;
  • 改善软件的可读性、可测试性和可维护性。

维护不是开发结束后的附属工作,而是软件生命周期的一部分。

3. 阶段之间的关系

六个阶段在逻辑上前后关联:

  • 需求为设计提供目标;
  • 设计为实现提供结构;
  • 实现产生需要验证的软件;
  • 测试把软件行为与需求进行对照;
  • 部署让软件进入真实使用环境;
  • 维护根据真实使用反馈和新需求推动下一轮变化。

当后续阶段发现问题时,可能需要返回前面的阶段重新澄清需求或调整设计。因此,软件开发过程虽然可以按阶段理解,但实际工作中需要持续验证前面的决定是否仍然成立。